package fmppc.config.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * 类描述:  MyBatis配置属性
 *
 * @author 王雷
 * @version 1.0.0
 * @date 2019/10/31 0031 下午 8:09
 */
@Data
@ConfigurationProperties(prefix = "mybatis-plus.page-config")
public class MyBatisPlusPropertiesConfigBean {
    /**
     * 属性描述：是否开启针对Count语句的join部分优化
     * 此优惠仅针对left join
     *
     * @date : 2019/10/31 0031 下午 8:27
     */
    private boolean countJoinOptimize = false;

    /**
     * 属性描述：最大读取长度
     *
     * @date : 2020/4/20 0020 下午 4:16
     */
    private int limtMaxSize = 500;

    /**
     * 属性描述：到达最后数据时是否返回首页
     *
     * @date : 2020/4/20 0020 下午 4:16
     */
    private boolean overIsToPage = true;

    /**
     * 方言类型
     */
    private String dialectType;

    /**
     * 方言实现类<br>
     * 注意！实现 com.baomidou.mybatisplus.extension.plugins.pagination.dialects.IDialect 接口的子类
     */
    private String dialectClazz;

    /**
     * 属性描述：德鲁伊访问配置
     * @date : 2022/9/17 0017 下午 2:08
     */
    private DruidConfig druidConfig;

    /**
    * 类描述: 德鲁伊访问配置
    * @author : 王雷
    * @date : 2022/9/17 0017 下午 2:08
    */
    @Data
    public static class DruidConfig {
        /**
         * 属性描述：访问路径
         * @date : 2022/9/17 0017 下午 2:05
         */
        String urlMapping = "/druid/*";

        /**
         * 属性描述：后台管理界面的登录账号
         * @date : 2022/9/17 0017 下午 2:06
         */
        String loginUsername = "admin";

        /**
         * 属性描述：后台管理界面的登录密码
         * @date : 2022/9/17 0017 下午 2:06
         */
        String loginPassword = "admin";

        /**
         * 属性描述：访问许可
         * @date : 2022/9/17 0017 下午 2:07
         */
        String accessPermission = "";
    }


    /**
     * 功能描述：到达最后数据时是否返回首页
     *
     * @author : 王雷
     * @date : 2020/4/20 0020 下午 4:19
     */
    public boolean getOverIsToPage() {
        return overIsToPage;
    }

    /**
     * 功能描述：是否开启针对Count语句的join部分优化
     * 此优惠仅针对left join
     *
     * @author : 王雷
     * @date : 2020/4/20 0020 下午 4:18
     */
    public boolean getCountJoinOptimize() {
        return countJoinOptimize;
    }
}
